iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
Software Development

RISC-V 與處理器之架構學習及應用系列 第 23

[Day23] Virtual Memory(Backing Store)

  • 分享至 

  • xImage
  •  
  1. Virtual Memory Overview

    • Virtual Memory 允許程序使用比實體記憶體更大的記憶體空間,通過備援存儲(例如硬碟)來暫時保存資料。
    • 當執行大型程式時,並不需要將所有的資料和程式碼一次性載入到實體記憶體中。僅當需要時才會載入資料。
    • 作業系統通過分頁技術 (paging) 管理 Virtual Memory,其中記憶體區塊(頁面)在虛擬位址空間和實體記憶體(主記憶體或硬碟)之間進行映射。
  2. Page Mapping (頁面映射)

    • 每個程序都有其自己的 Virtual Address Space。
    • Virtual Address Space 中的頁面映射到主記憶體中的頁面,當不需要時,這些頁面會存儲在硬碟上。
    • 例如:程式1的 Page 0 儲存在主記憶體中的 Page 7,而 Page 4 儲存在主記憶體的 Page 5,其他頁面則可能仍然位於硬碟中。
  3. Page Fault and Page Replacement (頁面錯誤與頁面替換)

    • 當程式訪問的頁面未在主記憶體中時(找不到資料),會發生 Page Fault。
    • 系統必須從硬碟中取回遺漏的頁面並將其載入主記憶體,這可能需要替換現有的頁面 (Page Replacement)。
    • Page Replacement 策略(例如 Least Recently Used - LRU)決定了從記憶體中交換出哪個頁面。
  4. Page Table Format (頁面表格式)

    • Page Table 包含的信息如:
      • V (Valid bit):頁面是否存在於主記憶體中。
      • Virtual Page Number:在 Virtual Memory 中的頁面號碼。
      • Physical Page Number:對應於實體記憶體中的頁面號碼。
      • Dirty bit:表示該頁面是否已被修改過。
      • Reference bit:追蹤頁面是否最近被訪問過。
      • Access:有關頁面存取權限的信息。
  5. TLB (Translation Lookaside Buffer)

    • TLB 是一種快取,用來儲存最近的虛擬頁面號碼與實體頁面號碼的轉換,提升記憶體存取性能。
    • 當頁面被替換時,可能使用 LRU 方法來識別應從 TLB 或記憶體中淘汰哪個頁面。

上一篇
[Day22] Classical DRAM Organization
下一篇
[Day24] RISC-V 單周期 Datapath 與控制邏輯概述
系列文
RISC-V 與處理器之架構學習及應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言